sgdk
memory.h
Go to the documentation of this file.
00001 
00020 #ifndef _MEMORY_H_
00021 #define _MEMORY_H_
00022 
00023 
00028 #define STACK_SIZE      0x400
00029 
00033 #define MEMORY_HIGH     (0x01000000 - STACK_SIZE)
00034 
00035 
00040 #define GET_DWORDFROMPBYTE(src)     ((src[0] << 24) | (src[1] << 16) | (src[2] << 8) | (src[3] << 0))
00041 
00045 #define GET_DWORDFROMPBYTE_LI(src)  ((src[0] << 0) | (src[1] << 8) | (src[2] << 16) | (src[3] << 24))
00046 
00050 #define GET_WORDFROMPBYTE(src)      ((src[0] << 8) | (src[1] << 0))
00051 
00055 #define GET_WORDFROMPBYTE_LI(src)   ((src[0] << 0) | (src[1] << 8))
00056 
00060 #define GET_DWORDFROMPWORD(src)     ((src[0] << 16) | (src[1] << 0))
00061 
00065 #define GET_DWORDFROMPWORD_LI(src)  ((src[0] << 0) | (src[1] << 16))
00066 
00067 
00072 #define SWAP_u8(x, y)       \
00073 {                           \
00074     u8 swp;                 \
00075                             \
00076     swp = x;                \
00077     x = y;                  \
00078     y = swp;                \
00079 }
00080 
00085 #define SWAP_s8(x, y)       \
00086 {                           \
00087     s8 swp;                 \
00088                             \
00089     swp = x;                \
00090     x = y;                  \
00091     y = swp;                \
00092 }
00093 
00098 #define SWAP_u16(x, y)      \
00099 {                           \
00100     u16 swp;                \
00101                             \
00102     swp = x;                \
00103     x = y;                  \
00104     y = swp;                \
00105 }
00106 
00111 #define SWAP_s16(x, y)      \
00112 {                           \
00113     s16 swp;                \
00114                             \
00115     swp = x;                \
00116     x = y;                  \
00117     y = swp;                \
00118 }
00119 
00124 #define SWAP_u32(x, y)      \
00125 {                           \
00126     u32 swp;                \
00127                             \
00128     swp = x;                \
00129     x = y;                  \
00130     y = swp;                \
00131 }
00132 
00137 #define SWAP_s32(x, y)      \
00138 {                           \
00139     s32 swp;                \
00140                             \
00141     swp = x;                \
00142     x = y;                  \
00143     y = swp;                \
00144 }
00145 
00146 
00151 void MEM_init();
00156 u16  MEM_getFree();
00168 void MEM_free(void *ptr);
00183 void* MEM_alloc(u16 size);
00184 
00185 
00199 void memset(void *to, u8 value, u16 len);
00213 void memsetU16(u16 *to, u16 value, u16 len);
00227 void memsetU32(u32 *to, u32 value, u16 len);
00242 void memcpy(void *to, const void *from, u16 len);
00246 void memcpyU16(u16 *to, const u16 *from, u16 len);
00250 void memcpyU32(u32 *to, const u32 *from, u16 len);
00251 
00255 void fastMemset(void *to, u8 value, u16 len);
00259 void fastMemsetU16(u16 *to, u16 value, u16 len);
00263 void fastMemsetU32(u32 *to, u32 value, u16 len);
00267 void fastMemcpy(void *to, const void *from, u16 len);
00271 void fastMemcpyU16(u16 *to, const u16 *from, u16 len);
00275 void fastMemcpyU32(u32 *to, const u32 *from, u16 len);
00276 
00277 
00278 #endif // _MEMORY_H_
 All Classes Files Functions Variables Typedefs Enumerations Defines